Kerberos-Authentifizierung auf Verschlüsselungstyp AES-256 SHA1

Für die ServicePrincipalName (SPN)-Registrierung:

Falls Kerberos RC-4 HMAC im Einsatz ist, muss alles bis dato eingestellte entfernt werden (Schritte 1 und 2). Falls Kerberos zum ersten Mal zum Einsatz kommt, dann beginnen Sie ab Schritt 3.

  1. Bereinigen Sie den vorhandenen ServicePrincipalName (SPN) (der Befehl muss von einem Domain-Administrator ausgeführt werden):

    setspn -U -D HTTP/aeneisserver.intellior.de KerbereosSPNBenutzer 
  2. Löschen Sie den vorhandenen KerbereosSPNBenutzer vom Active Directory komplett

  3. Legen Sie Im Active Directory einen neuen Benutzer an

  4. Aktivieren Sie für den Benutzer im Reiter Konto die Option Dieses Konto unterstützt Kerberos-AES-256-Bit-Verschlüsselung

  5. Aktivieren Sie für den Benutzer die Option Kennwort läuft nie ab

  6. Melden Sie sich auf dem Domain Controller (DC) als Domänen-Administrator an

  7. Führen Sie das Terminal/CMD als Administrator aus

  8. Führen Sie folgenden Befehl aus:

    Hinweis: Groß-Kleinschreibung der Domänennamen genauso übernehmen wie im Beispiel.

    ktpass /princ HTTP/aeneisserver.domäne.de@DOMÄNE.DE /mapuser 
    KerbereosSPNBenutzer@DOMÄNE.DE /pass Secretpassword /out 
    C:\krb5.keytab /ptype KRB5_NT_PRINCIPAL /crypto AES256-SHA1 
    • 1. Zeile: aeneisserver.domäne.de@DOMÄNE:DE entsprechend anpassen

    • 2. Zeile: KerberosSPNBenutzer@DOMÄNE.DE und Secretpassword entsprechend anpassen


    Mit diesem Befehl wird auch gleichzeitig der SPN gesetzt. Die Datei krb5.keytab wird dann im Aeneis-Anwendungsverzeichnis abgelegt.

  9. Nach dem Ausführen des Befehls, kontrollieren Sie folgendes:

    • Durch das Ausführen des Befehls, muss automatisch der SPN für http/aeneisserver.domäne.de auf KerberosSPNBenutzer gesetzt werden. Wenn nicht, was der Befehl nicht erfolgreich.

    • Durch das Ausführen des Befehls, wird der AD-Benutzer automatisch angepasst. Wenn nicht, war der Befehl nicht erfolgreich

    Beispiel: Der Befehl wird wie folgt ausgeführt:

    ktpass /princ HTTP/int-flexcloud0001.bpm-flexcloud.de@INTELLIOR.de /mapuser
    ssoflex01@INTELLIOR.DE /pass Passwort /out C:\krb5.keytab /ptype
    KRB5_NT_PRINCIPAL /crypto AES256-SHA1

    Der Benutzer ändert sich wie folgt:

     

  10. Legen Sie die Datei login.conf im Aeneis-Anwendungsverzeichnis an mit folgendem Inhalt:

    Hinweis: Groß-Kleinschreibung beim Eintrag principal wie im Beispiel

    AENEISClient { 
    	com.sun.security.auth.module.Krb5LoginModule required useTicketCache=true; 
    }; 
    spnego-client { 
    	com.sun.security.auth.module.Krb5LoginModule required; 
    }; 
    spnego-server { 
    	com.sun.security.auth.module.Krb5LoginModule required 
    	storeKey=true 
    	isInitiator=false 
    	useKeyTab=true 
    	keyTab="file:///C:/aeneisserver_config/krb5.keytab" 
    	principal="HTTP/aeneisserver.domäne.de@DOMÄNE.DE"; 
    }; 
  1. Passen Sie in der Datei krb5.conf, die im Anwendungsverzeichnis schon vorhanden ist, folgendes an:

    Hinweis: Groß-Kleinschreibung der Domänennamen genauso übernehmen wie im Beispiel

    [libdefaults] 
    	default_realm = DOMÄNE.DE 
    	default_tkt_enctypes = aes256-cts-hmac-sha1-96 
    	default_tgs_enctypes = aes256-cts-hmac-sha1-96 
    	permitted_enctypes = aes256-cts-hmac-sha1-96 
    [realms] 
    	DOMÄNE.DE = { 
    		kdc = domaincontroller.domäne.de 
    		default_domain = domäne.de 
    	} 
    [domain_realm] 
    	.DOMÄNE.DE = DOMÄNE.DE 
  1. Starten Sie den Aeneisserver neu, damit die Änderungen sofort greifen

Die Befehle und Config-Files noch mal im einzelnen:

Keytab-File-Erzeugung als Admin auf dem AD:

ktpass /princ HTTP/int-pc0025.intellior.de@INTELLIOR.DE 
/mapuser ssochlis@INTELLIOR.DE /pass secretPassword 
/out C:\Path\to\krb5.keytab /ptype KRB5_NT_PRINCIPAL /crypto AES256-SHA1 

Dokumentation zu ktpass: https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/ktpass

login.conf:

AENEISClient { 
	com.sun.security.auth.module.Krb5LoginModule required useTicketCache=true; 
}; 
spnego-client { 
	com.sun.security.auth.module.Krb5LoginModule required; 
}; 
spnego-server { 
	com.sun.security.auth.module.Krb5LoginModule required 
	storeKey=true 
	isInitiator=false 
	useKeyTab=true 
	keyTab="file:///C:/Path/to/krb5.keytab" 
	principal="HTTP/int-pc0025.intellior.de@INTELLIOR.DE"; 
}; 

 

Die Datei login.conf kann im Applikationsverzeichnis hinterlegt werden.

Wenn die Datei nicht vorhanden ist, dann wird weiterhin wie vorher mit den Defaults des Systems gearbeitet.

krb5.conf

[libdefaults] 
default_realm = INTELLIOR.DE 
default_tkt_enctypes = AES256-CTS-HMAC-SHA1-96 
default_tgs_enctypes = AES256-CTS-HMAC-SHA1-96 
permitted_enctypes = AES256-CTS-HMAC-SHA1-96 
[realms] 
INTELLIOR.DE = { 
	kdc = int-dc05.intellior.de 
	default_domain = intellior.de 
} 
[domain_realm] 
.INTELLIOR.DE = INTELLIOR.DE